package com.itheima.reggie.mapper;

import com.itheima.reggie.dto.SetmealDto;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface SetmealMapper {

    /**
     * 新增套餐
     * @param setmealDto
     * @return
     */
    @Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")
    @Insert("insert into setmeal values (null,#{categoryId},#{name},#{price},#{status},#{code},#{description},#{image}," +
            "#{createTime},#{updateTime},#{createUser},#{updateUser},0)")
    Integer addSetmeal(SetmealDto setmealDto);

    /**
     * 根据名字查询所有套餐
     * @param name
     * @return
     */
    List<SetmealDto> findAllByName(@Param("name") String name);


    /**
     * 根据套餐ids修改套餐状态：禁用
     * @param ids
     * @return
     */
    Integer updateStatus(@Param("ids") List<Long> ids);
    /**
     * 根据套餐ids修改套餐状态：启用
     * @param ids
     * @return
     */
    Integer updateStatusInUse(@Param("ids") List<Long> ids);


    /**
     * 根据ids删除套餐
     * @param ids
     * @return
     */

    Integer deleteByIds(Long[] ids);

    /**
     * 查询套餐状态为1的总数
     * @param ids
     * @return
     */
    Long querySetmealWithStatus(Long[] ids);

    /**
     * 数据回显：根据id连表查询套餐和套餐菜品
     * @return
     */
    SetmealDto selectSetmealDtlAndSetmealDishById(Long id);


    /**
     * 修改套餐
     * @param setmealDto
     * @return
     */

    Integer updateSetmeal(SetmealDto setmealDto);

    /**
     * 根据套餐分类id查找套餐列表
     * @param categoryId
     * @return
     */
    @Select("select * from setmeal where category_id=#{categoryId} and status=#{status}")
    List<SetmealDto> findSetmealDtoByCategoryId(@Param("categoryId") Long categoryId,@Param("status") Integer status);

}
